package com.bruce.practice.thread.game;

import java.util.Set;

/**
 * @author luotuan
 * @Description
 * @create 2020-05-21 21:23
 **/
public interface Puzzle<P, M> {
    P initialPosition();

    boolean isGoal(P position);

    Set<M> legalMoves(P position);

    P move(P position, M move);
}
